//LED闪烁，注意：使用12M晶振下调试
//头文件:
#include <reg52.h>

//引脚定义:    
sbit LED = P2^0;	//定义一个LED灯显示

//函数声明:
void delay(void); 			//延时子函时
void init();				//初如化函数

//主函数，C语言的入口函数:	
void main()
{
	init();					//初始化中断控制寄存器
	while(1){}				//主函数不处理事件
}

//初始化函数
void init()
{
	TMOD=0X01;				//设置定时器0为模式一，即16位计算模式
	TH0=(65536-50000)/256;	//给计数寄存器赋值，50毫秒时间
	TL0=(65536-50000)%256;
	EA=1;		//开启总中断
	ET0=1;		//开启定时器0中断
	TR0=1;		//启动定时器0
}

//中断函数,关键字"interrupt" ， 这是C语言的中断函数表示法，1表时定地器0
void timer() interrupt 1
{
	TH0=(65536-50000)/256;	//重新赋值50毫秒中断
	TL0=(65536-50000)%256;
	LED=~LED;				//比较精确的脉冲输出，50MS翻转一次，即1秒中闪烁10次，
							//可随意更改中断时间做一个精确的脉冲发生器，最大中断时间为65536毫秒
}
